class AlgoritmoDeGanadoresActual
  def procesar_ganadores_docentes lista_votos
    procesar(3, lista_votos)
  end

  def procesar_ganadores_graduados lista_votos
    procesar(2, lista_votos)
  end
  
  def procesar_ganadores_alumnos lista_votos
   procesar(2, lista_votos)
  end

  private

  def procesar(cant_ganadores, lista_votos)
    votos = superaron_10_porciento lista_votos
    resultadoEleccion = procesar2 votos,cant_ganadores
  end
  
  def superaron_10_porciento(lista_votos)
    res = lista_votos.select{|value| lista_votos.count(value)> lista_votos.size*0.1}
    resf = {}
    res.each do |v|
      resf[v] = res.count v
    end
    
    return resf
  end
  
  
  def procesar2(votos,cant)
    res = votos.keys.sort {|p| votos[p] }
    res.reverse!    
  end
  
  def informar_problemas(votos,cant)
    res = []
    res.append("Menos ganadores de los necesarios") if votos.size > cant
    res.append("Hay empate") if votos.invert.size < votos.size
    return res
    #TODO: mejorar el informe de errores
  end
  
end

  
